package com.edu.d8_map_test;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;

public class MapDemo1 {
    /**
     * map集合遍历案例，A\B\C\D四个景点，80个同学投票选择去的地方，找出票数最高的那个
     *
     * 总体思路就是：首先，随机生成80个随机选择的景点，然后再使用一个map集合收集所得到的结果，依次遍历80个结果
     * 假如map集合中有这些结果，则对应的value值+1，假如没有这些结果，则将对应key的value值设置为1
     */
    public static void main(String[] args) {
        String[] place={"A","B","C","D"};
        //1、使用StringBuilder拼接起来所有选择
        StringBuilder s = new StringBuilder();
        //随机80个选择
        Random random = new Random();
        for (int i = 0; i < 80; i++) {
            s.append(place[random.nextInt(place.length)]);
        }
        System.out.println(s.toString());

        //2、定义一个map集合收集所有的结果
        Map<Character, Integer> map = new HashMap<>();

        //3、遍历80个选择，统计结果
        for (int i = 0; i < s.length(); i++) {
            //4、根据索引，获取拼接的字母
            char c = s.charAt(i);
            if(map.containsKey(c)){
                //让其值加一
                map.put(c,map.get(c)+1);
            }else{
                //表明第一次出现，让其设置成一
                map.put(c,1);
            }
        }
        System.out.println(map);
    }
}
